package org.dfg.corejava.jdk7;

import java.util.ArrayList;
import java.util.List;

/**
 * 泛型相关
 * @author DingFugui
 */
public class Generics {
	public static void main(String[] args) {
		List<String> l1 = new ArrayList<String>();
		List<String> l2 = new ArrayList<>();// 自动识别

		// 在未指定泛型的情况下，如果发生如下情况，运行时会出错，为了避免这种情况，加入了一个警告
		List l = new ArrayList();
		List ls = l; // unchecked warning
		l.add(0, new Integer(42)); // another unchecked warning
		String s = (String) ls.get(0); // ClassCastException is thrown
	}

	// 7.0中会有一个警告Possible heap pollution from parameterized vararg type
	// heap pollution:变量被另一个不相关变量引用
	public static <T> void add(List l, T... arg) {
		for (T e : arg) {
			l.add(e);
		}

	}
}
